Conversation
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
# Conflicts: # packages/relay/src/lib/debug.ts
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
# Conflicts: # docs/rpc-api.md # scripts/openrpc-json-updater/config.js
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
# Conflicts: # packages/relay/src/index.ts
…get-raw-header-method
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
There was a problem hiding this comment.
lgtm...
It’s unfortunate that we have to fetch all the transactions in a block just to return the header. However, as long as we’re responsible for calculating the root, I don’t think there’s any way around it.
Just few nits to consider (non-blockers I guess)
EDIT: but you'llhave to resolve the conflicts first.
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
…get-raw-header-method # Conflicts: # packages/relay/src/lib/factories/blockFactory.ts # packages/server/tests/acceptance/debug.spec.ts
Signed-off-by: nikolay <n.atanasow94@gmail.com>
# Conflicts: # docs/openrpc.json # docs/rpc-api.md # packages/relay/src/index.ts # packages/relay/src/lib/debug.ts # packages/relay/src/lib/factories/blockFactory.ts # packages/relay/tests/lib/debug.spec.ts # packages/server/tests/acceptance/debug.spec.ts # scripts/openrpc-json-updater/config.js
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Signed-off-by: nikolay <n.atanasow94@gmail.com>
| static rlpEncode(block: Block): Uint8Array { | ||
| if (typeof block.transactions[0] === 'string') { | ||
| static rlpEncode(block: Block, headerOnly: boolean = false): Uint8Array { | ||
| if (!headerOnly && typeof block.transactions[0] === 'string') { |
There was a problem hiding this comment.
It's not a blocker for me, but I think it would look a little bit cleaner with separate methods, and we wouldn’t need conditional validation logic here.
encodeHeader(block): RLP => rlp(header(block));
encode(block): RLP => validate(block) && rlp(...header(block), ...payload(block));also because of this the jsdocs are not quite valid any longer (especiall ydescription of the returned value)
RLP encode a block based on Ethereum Yellow Paper.
* @returns {Uint8Array} - RLP encoded block as Uint8 array
it should be more like
RLP encode a block (or its header only) based on Ethereum Yellow Paper.
* @returns {Uint8Array} - RLP encoded block (or block header) as Uint8 array
BartoszSolkaBD
left a comment
There was a problem hiding this comment.
Looks good. I wonder if we should have better coverage for synthetic transactions in these debug methods. Please let me know what is your opinion.
| */ | ||
| static rlpEncode(block: Block): Uint8Array { | ||
| if (typeof block.transactions[0] === 'string') { | ||
| static rlpEncode(block: Block, headerOnly: boolean = false): Uint8Array { |
There was a problem hiding this comment.
maybe we should split preparing canonical representation and encoding into two separate steps? I think it would allow us to get rid of headerOnly flag, swapping it for rlpEncodeBlock(block: Block) and rlpEncodeBlockHeader(header: BlockHeader)
Signed-off-by: nikolay <n.atanasow94@gmail.com>
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #4926 +/- ##
==========================================
+ Coverage 95.86% 95.97% +0.10%
==========================================
Files 143 143
Lines 23968 24063 +95
Branches 1900 1910 +10
==========================================
+ Hits 22977 23094 +117
+ Misses 967 943 -24
- Partials 24 26 +2
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 1 file with indirect coverage changes 🚀 New features to boost your workflow:
|
Description
Currently, we're missing the
debug_getRawHeadermethod.Solution
debug_getRawHeadermethodMissing fields in the Hedera concept:
fee_recipient
prev_randao
withdrawal_root
RPC method:
{ "id": 1, "jsonrpc": "2.0", "method": "debug_getRawHeader", "params": [ "latest" // block number or block hash ] }Response:
{ "jsonrpc": "2.0", "id": 1, "result": "0xf90211a0..." // RLP encoded header }Note:
0x00x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421Related issue(s)
Fixes #4891
Testing Guide
Changes from original design (optional)
N/A
Additional work needed (optional)
N/A
Checklist